The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Referring now to FIG. 1, a data diagram shows a two-dimensional Bose, Ray-Chaudhuri, Hocquenghem (BCH) product codeword. The BCH product codeword includes data 10 that is encoded with a concatenated code. The concatenated code includes an inner code and an outer code, which are both one-dimensional BCH codes. The parity of the inner BCH code 12 and the parity of the outer BCH code 14 are arranged as in FIG. 1. Every row forms a codeword of the inner code and every column forms a codeword of the outer code. The inner and outer codes facilitate error detection and correction at a receiver as described below.
Referring now to FIG. 2, a functional block diagram shows a communication system 20 in pertinent part. An outer code encoding module 22 encodes data 10 with the outer code. The outer code is a BCH code. In some applications the BCH code is a non-binary code such as Reed-Solomon (RS). An inner code encoding module 24 receives the encoded data from outer code encoding module 22 and completes encoding the data with the inner BCH code. A communication channel 26 communicates or stores the BCH codeword from inner code encoding module 24. Examples of channel 26 include magnetic media, such as a disk platter in a hard disk drive, a flash drive, a wireless communication channel, a fiber optic communication channel, a wired communication channel, computer readable memory, and the like.
The encoding process is reversed to receive or decode the BCH codeword from channel 26. A receiver or read channel includes an inner code decoding module 28. Inner code decoding module 28 receives the BCH codeword from channel 26 and decodes the inner code. An outer code decoding module 30 receives the partially decoded BCH codeword from inner code decoding module 28 and decodes the outer code. The decoded BCH codeword can be taken at an output of outer code decoding module 30.